home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 1.iso / ARGONET / PD / FILER / FSCKFRIEND.ZIP / !fsckFrend / !RunImage (.txt) < prev    next >
RISC OS BBC BASIC V Source  |  1995-09-17  |  9KB  |  377 lines

  1.  >!RunImage
  2.  block% 1024
  3. nagg(
  4. $+" at line "+
  5. taskname$="fsckFrend"
  6. dirname$="<fsckfrend$dir>"
  7. iconname$=""
  8. menuname$="fsck"
  9. taskwinnum%=0
  10. Ainitialslot%=
  11. OS_ReadVarVal("fsckfrend$slotsize")):
  12.  kBytes
  13. 9startupcomm$="fsck "+
  14. OS_ReadVarVal("fsckfrend$disc")
  15. *disc$=
  16. OS_ReadVarVal("fsckfrend$disc")
  17. Gaqdelay%=100*
  18. OS_ReadVarVal("fsckfrend$AUTOQUITDELAY")):
  19.  seconds
  20. ,aquit%=
  21.  this will be munged later :-)
  22. screwed%=
  23. Bbdel%=
  24. OS_ReadVarVal("fsckfrend$beeptimer")):
  25.  centi-seconds
  26. 7beep%=
  27. OS_ReadVarVal("fsckfrend$audiosignal")="Yes"
  28. icn%=0
  29. #child_task_handle%=-1:paused%=
  30. running%=
  31.  disc$="edit me!" 
  32.  0,"You haven't read the !Help file, have you?":
  33.  taskid% 8:$taskid%="TASK"
  34. "Wimp_Initialise",200,!taskid%,taskname$ 
  35.  version%,taskhandle%
  36. nagg(
  37. $+" at line "+
  38.  men% 256,indic% 24,wblk% 512
  39. "Hourglass_On"
  40. sprites:
  41. templates:
  42. initmenus
  43. pii(main%,1,"fsck-ing")
  44. pii(main%,2,disc$)
  45. changeval(main%,0,"s!fsckfrend")
  46. createtaskwindow
  47. running%=
  48. *seteval fsck$returncode -1
  49. openwindow(main%)
  50. "Hourglass_Off"
  51. (aquit% 
  52.  screwed%) 
  53. *C    
  54. "OS_ReadMonotonicTime" 
  55.  now%:
  56.  aquit%=0 quitat%=now%+200
  57. "Wimp_PollIdle",-
  58. (aquit% 
  59.  screwed%),block%,quitat% 
  60.  reason%
  61. "OS_ReadMonotonicTime" 
  62.  now%
  63.  now%>=quitat% 
  64.  screwed% 
  65.  beep% 
  66.  icn%=0 
  67. 2'      
  68. changeval(main%,0,"serror2")
  69.       icn%=2
  70. 4        
  71. 5&      
  72. changeval(main%,0,"serror")
  73.       icn%=0
  74. 7        
  75. 8'    
  76. "OS_ReadMonotonicTime" 
  77.  now%
  78.     quitat%=now%+bdel%
  79.  reason% 
  80.  0 : 
  81.  aquit% 
  82. >.           
  83. "OS_ReadMonotonicTime" 
  84.  now%
  85. ?&           
  86.  now%>=quitat% 
  87.          
  88.  2 : 
  89.  "Wimp_OpenWindow",,block%
  90.  3 : 
  91.  "Wimp_CloseWindow",,block%:
  92.  !block%=main% 
  93.  9 : 
  94. menuclick(block%)
  95.  6 : 
  96.  block%!8=2 
  97. popupmenu(
  98.  17,18:
  99. nagg(nagg$)
  100. "Wimp_ReportError","    "+nagg$,1<<4,taskname$
  101. nagg("Error in death throes!"):
  102. "Wimp_CloseDown",taskhandle%,!taskid%
  103. click_type
  104. c%=block%!8
  105.  c%=2 
  106. popupmenu(
  107.  block%!16 
  108.  &808C1:
  109. message_Output
  110.  &808C2:
  111. message_Ego
  112.  &808C3:
  113. message_Morio
  114. initmenus
  115. b"  i%=
  116. initmenu(men%,menuname$)
  117. c'  i%=
  118. additem(i%,"Info",0,inf_win%)
  119. d"  i%=
  120. additem(i%,"Pause",0,-1)
  121. e"  i%=
  122. additem(i%,"Quit",-1,-1)
  123. popupmenu(bar%)
  124.  "Wimp_GetPointerInfo",,block%
  125. j2q=!block%:w=block%!4:w%=block%!12:i%=block%!16
  126. k    w+=24
  127. menu%=men%
  128.  "Wimp_CreateMenu",,menu%,q-64,w
  129. n&lastmenu%=menu%:menx%=q-64:meny%=w
  130. templates
  131.  infb% 512,infi% 200,mainb% 256,maini% 64
  132. "Wimp_OpenTemplate",,dirname$+".templates"
  133. t:inf_win%=
  134. template("info",infb%,infi%,200,-1,sprites%)
  135. u8main%=
  136. template("main",mainb%,maini%,64,-1,sprites%)
  137. "Wimp_CloseTemplate"
  138. template(name$,buf%,ind%,len%,fonts%,sprs%)
  139. "Wimp_LoadTemplate",,buf%,ind%,ind%+len%,fonts%,name$,0
  140. buf%!64=sprs%
  141. "Wimp_CreateWindow",,buf% 
  142.  handle%
  143. =handle%
  144. sprites
  145. (file%=
  146. (dirname$+".Sprites"+
  147. suffix)
  148.  file%=0 
  149. nagg("Can't find spritefile!"):
  150. #file%)+128
  151. #file%
  152.  sprites% S%
  153. sprites%!0=S%
  154. sprites%!8=16
  155. "OS_SpriteOp",9+256,sprites%
  156. "OS_SpriteOp",10+256,sprites%,dirname$+".SPRITEs"+
  157. suffix
  158. menuselection(blk%,menu%)
  159. "Wimp_DecodeMenu",,menu%,blk%,wblk%+64
  160. =$(wblk%+64)
  161. menuclick(brtnd%)
  162. ,  item$=
  163. menuselection(brtnd%,lastmenu%)
  164.  item$ 
  165.  "Quit"    : 
  166.  "Pause"   : 
  167. pause
  168. OS_ReadVarVal(A$)
  169.  "OS_ReadVarVal",A$,block%,256,0,3 
  170.  ,,L :A$=""
  171.  a= 0 
  172. A$=A$+
  173. (block%!a)
  174.  child_task_handle%<>-1 
  175. killtaskwindow
  176. initmenu(menu%,menuname$)
  177. 2$menu%=menuname$:               : 
  178.  menu title
  179. Emenu%?12=7:menu%?13=2           : 
  180.  title foreground & background
  181. Emenu%?14=7:menu%?15=0           : 
  182.  menu  foreground & background
  183. (menuname$)>5 
  184. "  menu%!16=(
  185. (menuname$)+1)*16
  186.   menu%!16=6*16
  187. 2menu%!20=44        : 
  188.  width & height of items
  189. @menu%!24=0                      : 
  190.  vertical gap twixt items
  191. =menu%+28
  192. additem(menu%,text$,last%,sub%)
  193.  last% 
  194.  !menu%=128 
  195.  !menu%=0
  196. menu%!4=sub%
  197. menu%!8=&7000021
  198. $(menu%+12)=text$
  199. =menu%+24
  200. tick(menu%,text$,grey%)
  201.   menu%+=4
  202.     menu%+=24
  203. #    flags%=menu%!8:last%=!menu%
  204.     mt$=$(menu%+12)
  205.  mt$=text$ 
  206.  last%=128
  207.  mt$<>text$ 
  208. nagg("Error - can't (un)tick '"+text$+"' in menu cuz it doesn't exist!"):
  209.  grey% 
  210.  !menu%=last% 
  211.  1<<0 
  212.  !menu%=last% 
  213. (1<<0)
  214. createtaskwindow
  215.    taskwinnum%+=1
  216. /   cli$="*TASKWINDOW "+
  217. 34+startupcomm$+
  218. 9   cli$+=" -wimpslot "+
  219. (initialslot%)+"K -name "+
  220.    cli$+="    (fsck)"+
  221. 6   cli$+=" -ctrl -quit -task &"+
  222. hex8(taskhandle%)
  223. !   cli$+=" -txt &"+
  224. hex8(666)
  225. "Wimp_StartTask",cli$
  226. tick(men%,"Pause",
  227. hex8(n%)
  228. "00000000"+
  229. ~n%,8)
  230. message_Ego
  231.   newhandle%=block%!4
  232. #  child_task_handle%=newhandle%
  233. message_Morio
  234.   child_task_handle%=-1
  235. checkresults
  236. killtaskwindow
  237.  child_task_handle%=-1 
  238. O  !block%=20:block%!4=0:block%!8=0:block%!12=0:block%!16=&808C4:
  239.  die scum!
  240. "Wimp_SendMessage",17,block%,child_task_handle%
  241. pausewindow
  242.  child_task_handle%=-1 
  243. 2  !block%=20:block%!4=0:block%!8=0:block%!12=0
  244. I  block%!16=&808C6:
  245.  Freeze Motherfucka, or I'll blow your balls off!
  246. "Wimp_SendMessage",17,block%,child_task_handle%
  247. resumewindow
  248.  child_task_handle%=-1 
  249. 2  !block%=20:block%!4=0:block%!8=0:block%!12=0
  250. <  block%!16=&808C7:
  251.  Nice'n'slow, hands on the fender...
  252. "Wimp_SendMessage",17,block%,child_task_handle%
  253. message_Output
  254. pause
  255.  paused% 
  256. resumewindow
  257. tick(men%,"Pause",
  258.     paused%=
  259. pausewindow
  260. tick(men%,"Pause",
  261.     paused%=
  262. openwindow(window%)
  263. !wblk%=window%
  264. "Wimp_GetWindowState",,wblk%
  265. wblk%!28=-1
  266. flags%=wblk%!32
  267.  (flags% 
  268.  1<<16)=0 
  269.   !wblk%=window%
  270. "Wimp_GetWindowInfo",,wblk%
  271. /  mwid%=
  272. read_mode(-1,11)<<
  273. read_mode(-1,4)
  274. /  mhig%=
  275. read_mode(-1,12)<<
  276. read_mode(-1,5)
  277. !  width%=(wblk%!12)-(wblk%!4)
  278.     "  height%=(wblk%!16)-(wblk%!8)
  279. *  wblk%!4=0:
  280.  mwid% DIV2 - width% DIV2
  281.   wblk%!12=(wblk%!4)+width%
  282.   wblk%!8=mhig%-height%
  283.   wblk%!16=wblk%!8+height%
  284.   wblk%!28=-1
  285. "Wimp_OpenWindow",,wblk%
  286. read_mode(mode%,var%)
  287.  "OS_ReadModeVariable",mode%,var% 
  288.  ,,value%
  289. =value%
  290. changeval(window%,icon%,to$)
  291. !wblk%=window%
  292. wblk%!4=icon%
  293. "Wimp_GetIconState",,wblk%
  294. $(wblk%!32)=to$
  295. wblk%!8=0
  296. wblk%!12=0
  297. "Wimp_SetIconState",,wblk%
  298. grey(menu%,text$,grey%)
  299.   menu%+=4
  300.     menu%+=24
  301. %#    flags%=menu%!8:last%=!menu%
  302.     mt$=$(menu%+12)
  303.  mt$=text$ 
  304.  last%=128
  305.  mt$<>text$ 
  306. nagg("Error - can't (un)grey '"+text$+"' in menu cuz it doesn't exist!"):
  307.  grey% 
  308.  menu%!8=flags% 
  309.  1<<22 
  310.  menu%!8=flags% 
  311. (1<<22)
  312. checkresults
  313. --return$=
  314. OS_ReadVarVal("fsck$returncode")
  315. tick(men%,"Pause",
  316. grey(men%,"Pause",
  317.  return$="0" 
  318. changeval(main%,0,"Sphew"):
  319. updatewindow(main%)
  320.   running%=
  321. "OS_ReadMonotonicTime" 
  322.  quitat%
  323.   quitat%+=aqdelay%
  324.  aqdelay%<0 
  325.  aquit%=
  326.  aquit%=
  327. changeval(main%,0,"Serror"):
  328. updatewindow(main%)
  329.   aquit%=
  330.  bdel%>=0 
  331.     screwed%=
  332. ;*    
  333. "OS_ReadMonotonicTime" 
  334.  quitat%
  335.     quitat%+=bdel%
  336. pii(main%,1,
  337. why(return$))
  338. pii(window%,icon%,text$)
  339. !wblk%=window%
  340. wblk%!4=icon%
  341. "Wimp_GetIconState",,wblk%
  342. F%ot$=$(wblk%!28):$(wblk%!28)=text$
  343. wblk%!8=0
  344. wblk%!12=0
  345.  ot$<>text$ 
  346. "Wimp_SetIconState",,wblk%
  347. changeval(window%,icon%,to$)
  348. !wblk%=window%
  349. wblk%!4=icon%
  350. "Wimp_GetIconState",,wblk%
  351. $(wblk%!32)=to$
  352. wblk%!8=0
  353. wblk%!12=0
  354. "Wimp_SetIconState",,wblk%
  355. why(code$)
  356. (code$) 
  357.  32,33,48,49 : ="Need Hardfix"
  358.  1024 : ="FS error"
  359.  1,16,17: ="Fixable"
  360.  4,16,20 : ="Unfixable :-("
  361.  0 : ="Map Good"
  362.  -1 : ="fsck died"
  363.  &1000 : ="increase memory"
  364.  &800 : ="I/O error"
  365.  512 : ="Bad parameters"
  366.  256 : ="Useless fsck"
  367.  :="Unk="+code$
  368. suffix
  369. g1xeig%=
  370. read_mode(-1,4):yeig%=
  371. read_mode(-1,5)
  372.  yeig%>xeig% 
  373.  ="24"
  374. i    ="22"
  375. updatewindow(window%)
  376. "Wimp_ForceRedraw",window%,0,-1E9,1E9,0
  377.